One or more aspects relate, in general, to processing within a computing environment, and in particular, to exception handling.
Today, system architectures have the capability to handle synchronous exceptions (e.g., page faults) within a set of predefined parameters. For example, a processor may take a page fault, indicate the location of the page fault and restart the instruction. As a particular example, on a System z server based on the z/Architecture offered by International Business Machines Corporation, Armonk, N.Y., the processor can take an itext page fault anywhere within a 6 byte opcode. The location of the page fault is indicated at the beginning of the interrupted instruction. However, with certain types of instructions, such as prefix instructions, the handling of exception conditions may be more complex.
Prefix instructions are used to modify subsequent instructions, and in one example, are used to extend addressability. For instance, different computer system architectures offer data addressing with different displacements providing varying sizes of directly addressable data ranges. As examples, the Power Architecture, offered by International Business Machines Corporation, Armonk, N.Y., provides data addressing with a 16-bit displacement providing a 64 KB (kilobyte) directly addressable data range, while the x86 architecture, offered by Intel Corporation, provides data addressing with a 32-bit displacement providing a 4 GB (gigabyte) directly addressable data range.
The size of the directly addressable data range impacts and limits software applications. For instance, the size of global data areas, such as a Global Offset Table or Table of Contents used by software applications to locate global variables, is limited by the size of the directly addressable data range. As an example, if 16 bits is the maximum size of an immediate offset from a base register, then the size of the directly usable global data area is limited to 64 KB.